#pragma once
#include <string>
#include <vector>

using namespace std;

class ASTLink;

class ASTNode
{
	public:
		//vector<ASTLink*> nodeLinks;

		//explicit ASTNode(string type, string nodeName, ASTLink* upLink, unsigned int lineNumber=0);
		explicit ASTNode(unsigned int nodeType, string nodeName, unsigned int lineNumber=0);

		// getters
		string getNodeName();
		unsigned int getLineNumber();
		unsigned int getNodeType();
		static unsigned int indexCount;
		unsigned int getNodeIndex();

	private:
		unsigned int nodeType;
		string nodeName;
		unsigned int lineNumber;
		unsigned int nodeIndex;
		
		// setters
		void setNodeName(string nodeName);
		void setNodeType(unsigned int nodeType);
		void setLineNumber(unsigned int lineNumber);

};